Add a GtkPlacesOpenMode enum to say how a shortcut should be opened
authorFederico Mena Quintero <federico@gnome.org>
Wed, 28 Sep 2011 15:22:05 +0000 (10:22 -0500)
committerFederico Mena Quintero <federico@gnome.org>
Tue, 4 Sep 2012 01:38:55 +0000 (20:38 -0500)
Nautilus lets you open things in the same tab, in a new tab, or in
a new window.  We will expose these semantics through an enum, as
part of an 'open' signal.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
gtk/gtkplacessidebar.c
gtk/gtkplacessidebar.h

index 12efadaccd6b42e50d0b90bd7f113b7edd5c3d0d..f732a6265b12837e3f95ba5aeaac6cf6d38f4415 100644 (file)
@@ -72,7 +72,7 @@ struct _GtkPlacesSidebar {
        /* volume mounting - delayed open process */
        gboolean mounting;
        NautilusWindowSlot *go_to_after_mount_slot;
-       NautilusWindowOpenFlags go_to_after_mount_flags;
+       GtkPlacesOpenMode go_to_after_mount_open_mode;
 
        GtkTreePath *eject_highlight_path;
 
@@ -120,7 +120,7 @@ typedef enum {
 static void  open_selected_bookmark                    (GtkPlacesSidebar        *sidebar,
                                                        GtkTreeModel                 *model,
                                                        GtkTreeIter                  *iter,
-                                                       NautilusWindowOpenFlags flags);
+                                                       GtkPlacesOpenMode             open_mode);
 static void  gtk_places_sidebar_style_set         (GtkWidget                    *widget,
                                                        GtkStyle                     *previous_style);
 static gboolean eject_or_unmount_bookmark              (GtkPlacesSidebar *sidebar,
@@ -1663,9 +1663,9 @@ volume_mounted_cb (GVolume *volume,
                location = g_mount_get_default_location (mount);
 
                if (sidebar->go_to_after_mount_slot != NULL) {
-                       if ((sidebar->go_to_after_mount_flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) == 0) {
+                       if ((sidebar->go_to_after_mount_open_mode & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) == 0) {
                                nautilus_window_slot_open_location (sidebar->go_to_after_mount_slot, location,
-                                                                   sidebar->go_to_after_mount_flags, NULL);
+                                                                   sidebar->go_to_after_mount_open_mode, NULL);
                        } else {
                                NautilusWindow *new, *cur;
 
@@ -1712,7 +1712,7 @@ static void
 open_selected_bookmark (GtkPlacesSidebar *sidebar,
                        GtkTreeModel          *model,
                        GtkTreeIter           *iter,
-                       NautilusWindowOpenFlags       flags)
+                       GtkPlacesOpenMode      open_mode)
 {
        NautilusWindowSlot *slot;
        GFile *location;
@@ -1729,6 +1729,8 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
 
                location = g_file_new_for_uri (uri);
                /* Navigate to the clicked location */
+#if 0
+               /* FIXME: emit the signal with the open_mode */
                if ((flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) == 0) {
                        slot = nautilus_window_get_active_slot (sidebar->window);
                        nautilus_window_slot_open_location (slot, location,
@@ -1741,6 +1743,7 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
                                                                  gtk_window_get_screen (GTK_WINDOW (cur)));
                        nautilus_window_go_to (new, location);
                }
+#endif
                g_object_unref (location);
                g_free (uri);
 
@@ -1763,7 +1766,7 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
                        sidebar->go_to_after_mount_slot = slot;
                        eel_add_weak_pointer (&(sidebar->go_to_after_mount_slot));
 
-                       sidebar->go_to_after_mount_flags = flags;
+                       sidebar->go_to_after_mount_open_mode = open_mode;
 
                        nautilus_file_operations_mount_volume_full (NULL, volume,
                                                                    volume_mounted_cb,
@@ -1786,7 +1789,7 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
 
 static void
 open_shortcut_from_menu (GtkPlacesSidebar *sidebar,
-                        NautilusWindowOpenFlags               flags)
+                        GtkPlacesOpenMode open_mode)
 {
        GtkTreeModel *model;
        GtkTreePath *path;
@@ -1797,7 +1800,7 @@ open_shortcut_from_menu (GtkPlacesSidebar *sidebar,
 
        gtk_tree_model_get_iter (model, &iter, path);
 
-       open_selected_bookmark (sidebar, model, &iter, flags);
+       open_selected_bookmark (sidebar, model, &iter, open_mode);
 
        gtk_tree_path_free (path);
 }
@@ -2441,19 +2444,19 @@ bookmarks_key_press_event_cb (GtkWidget             *widget,
       GtkTreeModel *model;
       GtkTreeSelection *selection;
       GtkTreeIter iter;
-      NautilusWindowOpenFlags flags = 0;
+      GtkPlacesOpenMode open_mode = GTK_PLACES_OPEN_MODE_NORMAL;
 
       if ((event->state & modifiers) == GDK_SHIFT_MASK) {
-          flags = NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
+       open_mode = GTK_PLACES_OPEN_MODE_NEW_TAB;
       } else if ((event->state & modifiers) == GDK_CONTROL_MASK) {
-          flags = NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW;
+       open_mode = GTK_PLACES_OPEN_MODE_NEW_WINDOW;
       }
 
       model = gtk_tree_view_get_model (sidebar->tree_view);
       selection = gtk_tree_view_get_selection (sidebar->tree_view);
       gtk_tree_selection_get_selected (selection, NULL, &iter);
 
-      open_selected_bookmark (sidebar, model, &iter, flags);
+      open_selected_bookmark (sidebar, model, &iter, open_mode);
 
       return TRUE;
   }
@@ -2817,7 +2820,7 @@ bookmarks_button_press_event_cb (GtkWidget             *widget,
                GtkTreePath *path;
                GtkTreeIter iter;
                GtkTreeView *tree_view;
-               NautilusWindowOpenFlags flags = 0;
+               GtkPlacesOpenMode open_mode = GTK_PLACES_OPEN_MODE_NORMAL;
 
                tree_view = GTK_TREE_VIEW (widget);
                g_assert (tree_view == sidebar->tree_view);
@@ -2830,14 +2833,14 @@ bookmarks_button_press_event_cb (GtkWidget             *widget,
 
                if (g_settings_get_boolean (nautilus_preferences,
                                            NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) {
-                       flags = (event->state & GDK_CONTROL_MASK) ?
-                               NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW :
-                               NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
+                       open_mode = ((event->state & GDK_CONTROL_MASK) ?
+                                    GTK_PLACES_OPEN_MODE_NEW_WINDOW :
+                                    GTK_PLACES_OPEN_MODE_NEW_TAB);
                } else {
-                       flags = NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND;
+                       open_mode = NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW; /* FIXME: was CLOSE_BEHIND */
                }
 
-               open_selected_bookmark (sidebar, model, &iter, flags);
+               open_selected_bookmark (sidebar, model, &iter, open_mode);
 
                if (path != NULL) {
                        gtk_tree_path_free (path);
index 57057f8b76d40ab082f1cffcd551a5392703d568..a17afd149e186c187f0f6420892eceb4eb812951 100644 (file)
 typedef struct _GtkPlacesSidebar GtkPlacesSidebar;
 typedef struct _GtkPlacesSidebarClass GtkPlacesSidebarClass;
 
+typedef enum {
+  GTK_PLACES_OPEN_MODE_NORMAL,
+  GTK_PLACES_OPEN_MODE_NEW_TAB,
+  GTK_PLACES_OPEN_MODE_NEW_WINDOW
+} GtkPlacesOpenMode;
+
 GType gtk_places_sidebar_get_type (void);
 GtkWidget *gtk_places_sidebar_new (void);